 REM  Mozart's Dice Game
 DIM nt(24)
       nt(0) = 0
      nt(1) = 137.5 : nt(13) = 275   ' C
      nt(2) = 143.8 : nt(14) = 287.6 ' C+
      nt(3) = 154.1 : nt(15) = 308.2 ' D
      nt(4) = 162.9 : nt(16) = 325.8 ' D+
      nt(5) = 171.8 : nt(17) = 343.6 ' E
      nt(6) = 183.3 : nt(18) = 366.6 ' F
      nt(7) = 194.7 : nt(19) = 389.4 ' F+
      nt(8) = 206.2 : nt(20) = 412.4 ' G
      nt(9) = 217.6 : nt(21) = 435.2 ' G+
     nt(10) = 229.1 : nt(22) = 458.2 ' A
     nt(11) = 243.4 : nt(23) = 486.8 ' A+
     nt(12) = 257.8 : nt(24) = 515.6 ' B
 CLS
 INPUT "pick any number 1-32767";x
 RANDOMIZE (x)
 start:
 nn = INT(RND(x) * 14 +1)
  a = nn - 7
  REM GOSUB probablity :a = n ' Remove REM to use Probablity Table            
  a = a + z
  IF a < 0 THEN a = a + 12
  IF a > 24 THEN a = a - 12
  ' Second Note Generation
  xx = INT(RND(x) * 8 + 1)
  IF xx = 1 THEN i = 3
  IF xx = 2 THEN i = 5
  IF xx = 3 THEN i = -3
  IF xx = 4 THEN i = -5
  IF xx = 5 THEN i = -7
  IF xx = 6 THEN i = 7
  IF xx = > 6 THEN i = 0
  b = a + (i)
  IF b < 0 THEN b = b + 12
  IF b > 24 THEN b = b - 12
  tone = nt(a) :tone2 = nt(b):z = a
  vl = INT(RND(x) * 50)
  vl = vl - 25
  vl = vl + vl1
  IF vl < 0 THEN vl = vl + 64
  IF vl > 255 THEN vl = vl -64
  s = s + 1
  IF s < 3 THEN tm = 9
  IF s = 3 OR s > 3 THEN tm = 4.5
  laytone = lt(s):laytone2 = lt2(s):vl2 = vlp(s)
  SOUND WAIT
  SOUND  tone, tm ,vl ,0:SOUND tone2, tm,vl,1
  SOUND laytone,tm ,vl2,2: SOUND laytone2,tm ,vl2,3
  SOUND RESUME
  vl = vl1
  lt(s) = tone: lt2(s) = tone2 : vlp(s) = vl
  IF s > 6 THEN s = 0
  
  GOTO start
      
'Change probablity
 probablity:
 nn = INT(RND(x) * 100 + 1)
 IF nn < 3 THEN n = -12 :RETURN
 IF nn < 5 THEN n = -11 :RETURN
 IF nn < 7 THEN n = -10 :RETURN
 IF nn < 10 THEN n = -9 :RETURN
 IF nn < 13 THEN n = -8 :RETURN
 IF nn < 19 THEN n = -7 :RETURN
 IF nn < 20 THEN n = -6 :RETURN
 IF nn < 26 THEN n = -5 :RETURN
 IF nn < 31 THEN n = -4 :RETURN
 IF nn < 36 THEN n = -3 :RETURN
 IF nn < 42 THEN n = -2 :RETURN
 IF nn < 48 THEN n = -1 :RETURN
 IF nn < 54 THEN n = 0 :RETURN
 IF nn < 60 THEN n = 1 :RETURN
 IF nn < 66 THEN n = 2 :RETURN
 IF nn < 71 THEN n = 3 :RETURN
 IF nn < 76 THEN n = 4 :RETURN
 IF nn < 82 THEN n = 5 :RETURN
 IF nn < 83 THEN n = 6 :RETURN
 IF nn < 89 THEN n = 7 :RETURN
 IF nn < 92 THEN n = 8 :RETURN
 IF nn < 95 THEN n = 9 :RETURN
 IF nn < 97 THEN n = 10:RETURN
 IF nn < 99 THEN n = 11:RETURN
 nn = 12: RETURN
 
